﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Enum;
using RFMS;

namespace BU
{
    public class Werknemer
    {
        private ModelRFMSContainer _container;
        public Werknemer()
        {
            _container = ModelRFMSContainer.GetInstance();
        }

        public void Toevoegen(string naam, string wachtwoord, string functie)
        {
            _container.WerknemerSet.AddObject(RFMS.Werknemer.CreateWerknemer(0,naam,wachtwoord,functie,true));
            _container.SaveChanges();
        }

        public void Verwijderen(string naam)
        {
            var werknemer = _container.WerknemerSet.FirstOrDefault(p => p.Naam == naam);
            werknemer.Actief = false;
            _container.SaveChanges();
        }

        public void Wijzigen(string naam, string wachtwoord, string functie, string nieuweNaam)
        {
            var werknemer = _container.WerknemerSet.FirstOrDefault(p => p.Naam == naam);
            werknemer.Wachtwoord = wachtwoord;
            werknemer.Functie = functie;

            if (nieuweNaam != "")
            {
                werknemer.Naam = nieuweNaam;
            }
            _container.SaveChanges();
        }

        public List<List<string>> LijstVanWerknemers()
        {
            var werknemers = from g in _container.WerknemerSet 
                             where g.Actief == true
                             select g;
            var lijst = new List<List<string>>();
            foreach (var w in werknemers)
            {
                lijst.Add(new List<string> { w.WerknemerId.ToString(), w.Naam, w.Wachtwoord, w.Functie });
            }
            
            return lijst;
        }

        public string Naam { get; set; }
        public string Wachtwoord { get; set; }
        public EWerknemer WerknemerFunctie { get; set; }
        public bool Actief { get; set; }

        public List<string> Werknemers(string persoonLijkeCode)
        {
            var werknemers = from g in _container.WerknemerSet
                             where g.Actief == true && g.Wachtwoord == persoonLijkeCode
                             select g;
            var lijst = new List<string>();

            foreach (var w in werknemers)
            {
                lijst.Add(w.WerknemerId.ToString());
                lijst.Add(w.Naam);
                lijst.Add(w.Wachtwoord);
                lijst.Add(w.Functie);
            }

            return lijst;
        }
    }
}
